package main

import (
	"fmt"
)

//map key-value结构
func main() {

	//必须分配数据空间才能使用
	var a map[string]string = make(map[string]string)
	//使用前需要 先make,make的作用就是给map分配数据空间
	a["no1"] = "宋江"
	a["no2"] = "吴用"
	fmt.Println(a)

	//map1()
	mapDemo()
}

//map的增删改查
func mapDemo() {
	cities := make(map[string]string)
	cities["no1"] = "北京"
	cities["no2"] = "天津"
	cities["no3"] = "上海"

	s := cities["no5"]
	fmt.Println("取出的值是", s == "")
	//指定的key不存在时 ，删除不会报错
	delete(cities, "no5")
	fmt.Println(cities)
	ss, ok := cities["no5"]
	if ok {
		fmt.Println("存在no5", ss)
	} else {
		fmt.Println("值不存在")
	}
}

//map 创建方式1
func map1() {
	var a map[string]string
	a = make(map[string]string, 10)
	fmt.Println(a)

	//第二种方式
	cities := make(map[string]string)
	cities["no1"] = "北京"

	//第三种方式
	heros := map[string]string{
		"hero1": "宋江",
		"hero2": "吴用",
	}
	fmt.Println(heros)

}
